﻿//题目描述
//给定一个大小为n的单调不减的非负整数序列a（下标从1开始），再给出q个询问。
//对于每个询问，给出一个整数x，你需要回答出，x第一次在给定序列a中出现的下标。
//输入描述
//第一行：两个整数n, q。（1≤n, q≤2×10^5）
//第二行：n个整数，表示a1​, a2​, ⋅⋅⋅, an​。（0≤ai​≤109，1≤𝑖≤𝑛1≤i≤n）
//第三行：q个整数，表示询问的具体数字。（0≤x≤10^9）
//输出描述
//共一行，q个整数，表示每个询问数字在序列中第一次出现的下标，若不存在，则为−1。
//请注意，每个整数后为空格，而不是换行。
//输入
//7 3
//0 0 1 2 2 5 7
//1 2 8
//输出
//3 4 - 1
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5;
ll a[N];
int solve(ll a[], int l, int h, ll key) {
	int mid = (l + h) / 2;
	while (l <= h) {
		if (key == a[mid])
			return mid;
		else if (key < a[mid]) {
			return solve(a, l, mid - 1, key);
		}
		else if (key > a[mid])
			return solve(a, mid + 1, h, key);
	}
	return -1;
}
int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int n, q; cin >> n >> q;
	for (int i = 1; i <= n; i++)cin >> a[i];
	while (q--) {
		int x; cin >> x;
		int reult=solve(a, 1, n, x);
		cout << reult << " ";
	}
	return 0;
}